#ifndef _NE_TRIANGLE_H_
#define _NE_TRIANGLE_H_

#include <mathematics/Geometry.h>

namespace ne
{
    class NEAPI Triangle : public Geometry
    {
        public:
            Triangle(const Vector2 &v0, const Vector2 &v1, const Vector2 &v2);

            Triangle(const Triangle &t);

            Triangle& operator = (const Triangle &t);

            void redefine(const Vector2 &v0, const Vector2 &v1, const Vector2 &v2);

            Vector2& operator [] (const size_t v);

            const Vector2& operator [] (const size_t v) const;

            real* ptr();

            const real* ptr() const;

            virtual GeometryClass getClass() const;

            virtual ~Triangle();

        private:
            Triangle();

        protected:
            Vector2 mVertex[3];
    };
}

#endif
